import PyInstaller.__main__
import os
import shutil
import sys

# 清理之前的构建文件
if os.path.exists('build'):
    shutil.rmtree('build')
if os.path.exists('dist'):
    shutil.rmtree('dist')
for file in os.listdir('.'):
    if file.endswith('.spec'):
        os.remove(file)

# 确保目录存在
if not os.path.exists('dist'):
    os.makedirs('dist')
if not os.path.exists('uploads'):
    os.makedirs('uploads')
if not os.path.exists('data'):
    os.makedirs('data')
if not os.path.exists('static'):
    os.makedirs('static')

# 获取 site-packages 路径
import site
site_packages = site.getsitepackages()[0]

# 获取所有Python脚本文件
python_files = [f for f in os.listdir('.') if f.endswith('.py') and f != 'build.py']
add_data_args = []
for py_file in python_files:
    add_data_args.append(f'--add-data={py_file};.')

# 基础配置打包
PyInstaller.__main__.run([
    'app.py',
    '--name=银行资金系统',
    '--onefile',
    '--noconsole',
    '--paths=' + site_packages,
    '--add-data=templates;templates',
    '--add-data=uploads;uploads',
    '--add-data=data;data',
    '--add-data=static;static',
    *add_data_args,  # 添加所有Python脚本文件
    '--collect-all=pandas',
    '--collect-all=numpy',
    '--collect-submodules=PyInstaller',
    '--hidden-import=pyimod02_importers',
    '--hidden-import=pkg_resources.py2_warn',
    '--hidden-import=pandas',
    '--hidden-import=numpy',
    '--hidden-import=openpyxl',  # 添加openpyxl
    '--hidden-import=flask',     # 添加flask
    '--clean',
]) 